package simulador;

import eduni.simjava.Sim_entity;
import eduni.simjava.Sim_port;
import eduni.simjava.Sim_stat;
import eduni.simjava.Sim_system;
import eduni.simjava.distributions.Sim_negexp_obj;


public class FonteDeClientes extends Sim_entity {
	
	//private double taxaDeChegada;
	private Sim_port saida;
	private Sim_negexp_obj delay;
	
	final static String PORTA_DE_SAIDA = "FonteDeClientes.out";
	final static String NOME_DA_ENTIDADE = "FonteDeClientes";

	public FonteDeClientes(double taxaDeChegada) {
		super(NOME_DA_ENTIDADE);
		
        delay = new Sim_negexp_obj("Delay", 1/taxaDeChegada);
        add_generator(delay);

		saida = new Sim_port(PORTA_DE_SAIDA);
		add_port(saida);
		
	}
	
	public void body(){
		while(Sim_system.running()){
			sim_pause(delay.sample());
            sim_schedule(saida, 0.0, 0);
            sim_trace(1, "Cliente chegou na locadora.");
		}
	}	

}
